Semantic search systems and methods for a distributed data system

ABSTRACT

Methods and systems are provided for searching information in a distributed data processing system. A system for processing a semantic search query where the system may include a memory and a processor coupled to the memory being configured to, receive a structured search query, process the structured search query to deconstruct into query elements, identify a set of connected elements that define a data source associated with the received structured search query based on a processed query element, process the query elements to determine one or more command data element types associated with the received structured search query, and process data associated with the defined data source according to a command data element type to develop a semantic search query resultant data set.

Field of the Invention

Embodiments of the present disclosure relate generally to systems andmethods of data processing, and more specifically to systems and methodsfor querying data associated with a distributed data processing system.

BACKGROUND Description of the Related Art

The Internet of Things (IoT) promises to interconnect elements togetheron a massive scale. Such amalgamation allows interactions andcollaborations between these elements in order to fulfill one or morespecific tasks. Such tasks differ according to the context andenvironment of application. For example, tasks may range from sensingand monitoring of an environmental characteristic such as temperature orhumidity of a single room to controlling and optimization of an entirebuilding or facility in order to achieve a larger objective such as anenergy management strategy.

Depending on the application, connected elements may be of heterogeneousand/or homogenous hardware which may facilitate sensing, actuation, datacapture. data storage. or data processing. Each type of connectedelement hardware may have a unique data structure which details adigital representation of the physical capabilities of the hardwareitself and/or measured parameters. For example, a temperature sensor mayinclude temperature measurement, MAC address, IP address, and CPU typedata. Each connected hardware element may possess a unique datastructure. Accordingly, with the heterogeneity of these various datastructures available through the wide variety of available hardware,efficiently analyzing this data becomes a serious challenge.

SUMMARY

Methods and systems are provided for searching information in adistributed data processing system. A system for processing a semanticsearch query where the system may include a memory and a processorcoupled to the memory being configured to, receive a structured searchquery, process the structured search query to deconstruct into queryelements, identify a set of connected elements that define a data sourceassociated with the received structured search query based on aprocessed query element, process the query elements to determine one ormore command data element types associated with the received structuredsearch query, and process data associated with the defined data sourceaccording to a command data element type to develop a semantic searchquery resultant data set.

Principles of the disclosure demonstrate the structured search query maybe configured with a particular grammar. Further, the particular grammarmay include query elements that facilitate filtering, aggregation,publish, subscribe, and/or inferential functions. A defined data sourcemay be filtered for a data field associated with one or more connectedelements. An associated filtered data fields may be selected from agroup including device type, class, capability, and/or communicationprotocol. A defined data source may be aggregated using a mathematicaloperation. A mathematical operation may include min, max, sum, and/oraverage. A defined data source may be published and/or subscribed forconnected elements. A defined data source may infer a relationshipbetween connected elements. Inferring relationships between connectedelements may be determined by ontological operations. An ontologicaloperation may include developing graphical data structure with deviceand device location data relationships.

Principles of the disclosure further demonstrate, a data source definedfor the semantic search query may be constructed using semantic taggingwhich may correlates with one or more connected elements. A command dataelement may include operational elements for actuating at least one ofthe connected elements associated with the defined data source.Alternate embodiments may provide for identifying actionable connectedelements within the defined data source and/or updating a data valueassociated with a connected element.

Embodiments of the disclosure also provide one or more connectedelements may be virtual elements.

BRIEF DESCRIPTION OF THE DRAWINGS

These accompanying drawings are not intended to be drawn to scale. Inthe drawings, each identical or nearly identical component that isillustrated in various figures is represented by a line numeral. Forpurposes of clarity, not every component may be labeled in everydrawing. In the drawings:

FIG. 1A illustrates aspects of a system for facilitating a semanticsearch method in accordance with various embodiments of this disclosure;

FIG. 1B illustrates another embodiment of aspects of a system forfacilitating a semantic search method illustrated in FIG. 1A;

FIG. 2 illustrates aspects of how different types of devices may connectto the system for facilitating a semantic search method in accordancewith various embodiments of this disclosure;

FIG. 3A illustrates an exemplary deployment of various connectedelements of the system for facilitating a semantic search method inaccordance with various embodiments of this disclosure;

FIG. 3B illustrates exemplary deployment of connected elements across avariety of physical locations of the system that facilitates a semanticsearch from FIG. 3A;

FIG. 3C illustrates exemplary data organization constructs of connectedelements across a system that facilitates a semantic search;

FIG. 3D illustrates exemplary data organization constructs within a userinterface of connected elements across a system that facilitates asemantic search;

FIG. 4A is a block diagram of components of the system for a semanticsearch method in accordance with various embodiments of this disclosure;

FIG. 4B is an alternate representation of components of the system for asemantic search method in accordance with various embodiments of thisdisclosure;

FIG. 5A is a flow diagram for executing a semantic search method inaccordance with various embodiments of this disclosure;

FIG. 5B is a flow diagram of exemplary command functions for a methodfor a semantic search method;

FIG. 6 is a functional block diagram of a general-purpose computersystem in accordance with embodiments of this disclosure; and

FIG. 7 is a functional block diagram of a general-purpose storage systemin accordance with the general-purpose computer system of FIG. 6.

DETAILED SUMMARY

This disclosure is not limited in its application to the details ofconstruction and the arrangement of components set forth in thefollowing descriptions or illustrated by the drawings. The disclosure iscapable of other embodiments and of being practiced or of being carriedout in various ways. Also, the phraseology and terminology used hereinis for the purpose of descriptions and should not be regarded aslimiting. The use of “including,” “comprising,” “having,” “containing,”“involving,” and variations herein, are meant to be open-ended, i.e.“including but not limited to.”

In the emerging world of the Internet of Things (IoT) or more generally,Cyber Physical Systems (CPS), a convergence of multiple technologies isunderway to allow the sensing. actuation, data capture, storage, orprocessing from a large array of connected elements. These connectedelements may be accessed remotely using existing network infrastructureto allow for efficient Machine to Machine (M2M) and Human to Machine(H2M) communication. During this communication, as the network ofconnected elements changes over time, an increasing amount of data fromthese connected elements will be generated and allow for correlationswhich have not been possible before. Issues of organizing dynamic setsof connected elements are exacerbated by the disparate heterogeneousnature of the associated data structures.

With this plethora of hardware and associated data structures, a problemof organizing and analysis of data emerges as a wide variety of datastructures may be received at a single processing point from the vastnetwork of connected elements. A need exists for the ability to process,request, and analyze data from heterogeneous sources from the connectedelements. Each individual connected element may contain multiple datacharacteristics from a data structure that are similar to otherindividual or group of elements. Yet, even with these similar datacharacteristics, efficiently querying for these similar datacharacteristics across the plethora of different connected elements is asignificant challenge. One method to solve this problem of dataheterogeneity involves the implementation and execution of structuredsemantic queries.

A solution to the data challenge is the use of structured semanticqueries that solves two distinct problems. First, is to solve the issueof data heterogeneity delivered from a connected system which containsvarious data structures. Second is to filter and aggregate thisheterogeneous data from the connected elements and provide only requiredand relevant data to a user, cloud platform, or other repository.

Example applications of implementation and execution may include, butare not limited to: (1) managing HVAC systems to assure the comfort offacility occupants, (2) maintenance of a particular environmental airquality (which may consist of temperature, humidity, and carbon dioxidecontent) for storage or occupants and dynamically adjusting a workingbuilding environment according to the prevailing weather conditions, (3)manage a facility management through controlling and optimizingregarding energy consumption through active control of lighting,heating, and cooling, and (4) monitor day to day operations,maintenance, and oversight of facility operations. Commercialembodiments of such applications may be a part of building management orautomation system.

It is to be understood that the system described herein facilitatessignificant flexibility in terms of configuration and/or end userapplication and that although several examples are described a number ofalternative embodiment configurations and applications are alsopossible.

Generally, such tasks require a rich interactive experience which hidesthe complexity of the data heterogeneity problem. Advantages of thevarious embodiments contained herein include; allowing for the search ofspecific connected elements or associated data structures; configuringof alerts and notification messages adhering to a facility specificarchitecture without intimate knowledge of same; allowing for executionof facility specific queries to determine real-time metrics such asenergy consumption by area; and configuring any type of data structureto collect in a manner that does not require translation of units orother specific constructs.

FIG. 1A illustrates a representation of a system for implementation andexecution of a semantic search method 100 in which various embodimentsof the present disclosure may be implemented. The system for a semanticsearch method may include one or more general purpose computers 110, oneor more data storage arrays 130, a cloud computing environment 120, abuilding 140 or other structure which contains one or more connectedelements (not shown), and network connections 150 to allow the exchangeof data between these parts of the system.

In one embodiment of the system illustrated in FIG. 1A, the building 140contains one or more connected elements that perform sensing, actuation,data capture, storage, or processing for the monitoring or management ofthe building 140. Any variety of connected elements may be used tocapture, store, or process data, or actuate associated devices over thenetwork connections 150, to the cloud computing environment 120, toother parts of the system. These connected elements may, for example,detect temperature, humidity, ambient light, sound, smoke, carbonmonoxide, carbon dioxide, motion, non-conductive fluids, conductivefluids, vibration, energy, power, voltage, current, or any other desiredcharacteristic, and combination thereof. Connected elements may alsooperate or articulate elements, components, and/or other systems such asturning on lights, opening a door or window, moving window shades, ortriggering a door lock. Connected elements may also process datastructures from other connected elements or propagate data structuresfrom one or more connected elements to one or more other connectedelements. Any number of connected elements may be deployed in anycombination to monitor or manage a physical space. Examples of such aspace may include a closet, room, building, campus, office, promenade,or any other desired location. Further, it is to be understood thatconnected elements may be physical in nature, virtual in nature, or acombination of both.

Each building 140 containing a connected element may ultimately connectto a cloud computing environment 120 through a network connection 150.This connection allows access to the cloud computing environment 120 bya variety of devices capable of connecting to such an environment ineither a wired or wireless connection manner. From FIG. 1A such devicesmay include one or more general purpose computers 110 capable ofreceiving input from a user or to provide autonomous operation. One ormore data storage arrays 130 may be utilized to provide additional datastorage capability. It should be appreciated a cloud computingenvironment 120, while providing additional communication paths toadditional elements or systems, is not required as part of the semanticsearch method. Other embodiments contemplate self-contained orstand-alone systems.

The network connections 150 may be wired or wireless connection types.Such connections may include, but are not limited to, any physicalcabling method such as category 5 cable, coaxial, fiber, copper, twistedpair, or any other physical media to propagate electrical signals.Wireless connections may include, but are not limited to personal areanetworks (PAN), local area networks (LAN), Wi-Fi, Bluetooth, cellular,global, or space based communication networks. Access between the cloudcomputing environment 120 and any other cloud environment is possible inother implementations these other cloud environments are configured toconnect with devices similar to cloud environments such as the existingcloud computing environment 120. It is to be understood that thecomputing devices shown in FIG. 1A are intended to be illustrative onlyand that computing nodes and cloud computing environments maycommunicate with any type of computerized device over any type ofnetwork with addressable or direct connections.

FIG. 1B illustrates another embodiment of aspects of a system forfacilitating a semantic search method illustrated in FIG. 1A. Anembodiment of a commercial IoT gateway targeting small to mediumfacilities, capable of integrating heterogeneous devices and sensorswith different communication mechanisms, protocols and data models asshown in FIG. 1B. Embodiments may push data to a cloud platform forstorage and/or analysis. For example, at the application level, a queryof any collected data may be used for several purposes such as energyefficiency, asset maintenance and management in different marketsegments like retail or health-care. It is to be understood FIG. 1B isillustrative of many such embodiments and is not limited by the figure.

FIG. 2 illustrates a representation of a portion of the system for asemantic search method 200 in which various embodiments of the presentdisclosure may be implemented. In one embodiment of FIG. 2, the building140 contains one or more types of connected elements 210, 220, 230, 240for the monitoring or management of the structure. These connectedelements 210, 220, 230, 240 communicate via a wired 250 or wireless 260networks and makes the data structures from each connected elementavailable to the cloud computing environment 120 via the networkconnections 150.

Any variety of connected elements may be used to perform sensing,actuation, data capture, storage, or processing over the networkconnection 150, to the cloud computing environment 120, to other partsof the system. For example, connected elements 210 may be connectedsensors to measure carbon dioxide for monitoring air quality of thebuilding 140 and communicate via a wired network connection 250.Connected element 220 may be both a connected sensor to detect ambientlight and also an actuator to change the state of an occupant lightfixture and communicate via a wired network connection 250. Connectedelements 230 may be connected sensors for temperature and humidity tomonitor environment of the building 140 and communicate via a wirelessnetwork connection 260. Finally, connected element 240 serves as aconnected gateway to communicate with the associated connected elements210, 220, 230, via their respective network connections 250, 260,process the data structures of each, and transmit same to a networkconnection 150 for transmission to the cloud computing environment 120.It should be appreciated a cloud computing environment 120, whileproviding additional communication paths to additional devices orsystems, is not required as part of the semantic search method. Otherembodiments contemplate self-contained or stand-alone systems.

These connected elements need not be geographically localized orlogically grouped in any way to utilize embodiments of this disclosure.Grouping connected elements geographically or logically may allow moreeconomic use. A geographic grouping such as in an apartment, home oroffice building may be accomplished, as well as logically locatingconnected elements by function. One of many logical grouping examplesmay be locating connected end points designed to sense temperature,proximate to an occupied location to detect changes in environment. Itshould be appreciated that the groupings of connected endpoints may alsobe located on a very large geographic scale, even globally. Such globaloperations may be monitored through a network located in any number offacilities around the globe.

FIG. 3A illustrates exemplary deployment in context of various elementsof the system for a semantic search method 300 in which variousembodiments of the present disclosure may be implemented. A “North”building 310 and a “West” building 320 are illustrated. Each buildinghas (3) floors associated with each. North Floor (1) 312, North Floor(2) 314, North Floor (3) 316 are contained within the North building310. West Floor (1) 322, West Floor (2) 324, and West Floor (3) 326 arecontained within the West building 320. Each floor has (3) connectedelements of different types. For example, connected elements may beconnected sensors to measure carbon dioxide 330, 332, 334, 360, 362, 364for monitoring air quality of the building 310, 320 respectively andcommunicate via a wired network connection. Connected elements may beboth a connected sensor to detect ambient light and an actuator 340,342, 344, 370, 372, 374 to change the state of an occupant light fixtureand communicate via a wired network connection. Connected elements maybe connected sensors for temperature and humidity 350, 352, 354, 380,382, 384 to monitor environment of the building 310, 320 respectivelyand communicate via a wireless network connection.

FIG. 3B illustrates exemplary deployment in context and logicalplacement of various elements system for a semantic search method 300 inwhich various embodiments of the present disclosure may be implemented.Within each floor of each building multiple connected elements exist. Asan example, temperature and humidity 350, 352, 354, 380, 382, 384 carbondioxide 330, 332, 334, 360, 362, 364, and ambient light 340, 342, 344,370, 372, 374 connected elements exist on each floor of each building.Further, each connected element may exist in a distinct zone on eachfloor of each building. As one of many examples, a general floor plan390 may indicate zones that are defined as “Zone 1” 392, “Zone 2” 394,and “Zone 3” 396. It should be appreciated that such designations arehighly configurable by a user or other system and are shown here forillustrative purposes only.

Given the connected element configuration illustrated in FIGS. 3A and3B, each connected element possesses a data structure that includes, butnot be limited to, sensor specific information (temperature/humidity,carbon dioxide, and ambient light), geographic information (zone, floor,building), and network information (MAC address, IP address, wired,wireless). Other connected element information may be available as wellas information relative to the operation of the connected elementitself. As one example, a status of online or offline may be availableto further add to the data construct for each connected element.

Once physical connections to the connected elements are put in place orestablished, a digital representation may be created. This process oftranslating the physical representation of the system to a homogenizedtaxonomy called semantic tagging. Semantic tagging links the datastructures available from the connected elements of a particular systemto a formal naming and definition that actually or possibly exist inphysically represented systems, or ontology. For example, ontologies mayinclude definitions such as location, relationships, usage, physicalquantities, network protocol, or units.

Semantic tagging may occur in one of two ways, automatic or manualsemantic tagging. Automatic semantic tagging is accomplished by thesystem without user input. In this approach, each data structure foreach connected element is examined and deconstructed by the system intocorresponding data structure elements. During the identificationprocess, it is determined what data structure elements exist for eachconnected element. Once each data structure element is defined, it isthen mapped to a corresponding taxonomy and tagged with this taxonomywhich in turn becomes part of that connect elements data structure. Atleast one data structure element may be tagged during this process toallow all connected elements to be defined as part of the system.

Manual semantic tagging is accomplished by the system with user input.As an example, this form of tagging may be performed during theinstallation of the system as whole, groups of connected elements, orindividual connected elements. Similar to automatic semantic taggingeach data structure for each connected element is examined or known to auser. Once the user identifies what data structure element is defined, auser may then select a mapping to a corresponding taxonomy. Once taggedwith this taxonomy it in turn becomes part of that connected elementsdata structure. At least one data structure element may be tagged duringthis process to allow all connected elements to be defined as part ofthe system. Other tools may be available to assist the user inidentification of the particular data structure elements for theparticular connected elements. Such tools may be used duringcommissioning of the entire system or portions of the system.

FIG. 3C illustrates exemplary data organization constructs of connectedelements across a system that facilitates a semantic search. It shouldbe appreciated that any connected element type in any combination mayexist in any geographic location and include additional informationwithin a respective data structure. These exemplary data organizationillustrates examples of ontologies such as protocols or usage as well asontologies specific to the application such as data center or buildings.

As detailed herein heterogeneity among devices and systems acrossdomains is a primary concern. A solution to the data challenge is theuse of structured semantic queries that solves two distinct problems.First, is to solve the issue of data heterogeneity delivered from aconnected system which contains various data structures. Second is tofilter and aggregate this heterogeneous data from the connected elementsand provide only required and relevant data to a user, cloud platform,or other repository. To aide in a solution two sets of ontologies weredefined, common ontologies and specific ontologies, as illustrated inFIG. 3C.

Common ontologies may consist of concepts which occur more regularly.Examples may include concepts such as protocols, which classifycommunication protocols and information regarding the supportedcommunication medium and range. Physical quantities, which may exposethe measured or calculated environment concepts, such as energy. Units,may be used by the physical quantities to express a quantity and/orunit. Topological relations may classify the relations between entitiesand specifies the property of such relations such as transitive,symmetric. Further it may express a relationship such as is-ConnectedTowhich may capture several elements like the electrical wiring and/ornetwork connectivity. Localization may set a common definition such asbuilding, wing, and/or floor. An ontology may define concepts along withthe relationships. For example, a room isLocatedIn floor whereisLocatedIn is a transitive relation. Usage may be combined with theother common ontologies, for example, instance the active energy forlighting or the outside-air temperature.

Common ontologies may be extensible due to the expressiveness of theontology web language. Specific ontologies are domain oriented and areassociated with the common ontologies. FIG. 3C illustrates an examplethat common and specific ontologies for data center ontology would relyon the physical quantities to express the measurements and on thelocalization to add the concept of a rack. Such a concept will be addedas a sub-concept of the general class Location from the Localizationontology. Therefore, any instance of the rack concept may still bequeried due to the inference capability. It should be appreciated,specific ontologies may also be associated with and utilized by existingontologies. Also, global and local ontologies may be hosted locally orin a could environment and all, none, or a subset may be deployed to anylevel of connected device to assist in annotating the device data.

FIG. 3D illustrates exemplary output from a user interface which may beused to facilitate manual semantic tagging. Embodiments of automatictagging include a driver processing the protocol communication alongwith data decoding to a representation of a gateway's data model. Forexample, a Modbus driver may decode and extract a data frame from aspecific register along with identifying its structure in order toexpose it in the gateway's data model. Automatic tagging is performed atthe driver level for at least the Protocols, Units and Quantities. Evenif the driver is capable of automatic annotation of part of the data,contextual information such as usage and location may only be known atthe gateway and may be specified at the commissioning phase.

Commissioning, may be processed through a user interface at the gatewayinstallation phase after all the wiring and pairing has been performed.For example, the usage of the sensor along with its location are knownonly the commissioning phase. At this phase an installer may rely on acommissioning tool in order to tag the data from both the Usage andLocation ontologies. FIG. 3D shows an example from a gateway, where aninstaller has selected a sensor and is tagging the physical location byrelying on the Location ontology module. The commissioning toolprovides, among other features, the installer with a location template,based on the Location ontology, in order to instantiate the devicewithin a facility, such as a building, wing, floor, room, and/or closet.

Once the process of semantic tagging is completed, a digitalrepresentation of the physical system is stored in one or more memorywithin the system. Each connected element will be represented by acorresponding data structure. Each data structure will contain datastructure elements that describe the characteristics of the connectedelement. As one of many examples, the connected element possessing acarbon dioxide sensor 330, will possess an associated data structuredescribing the characteristics of the sensor. Each data structure willbe composed of a number of data structure elements. Each connectedelement will possess a data contracture and one or more data structureelements. Data structure elements for this carbon dioxide sensor 330 mayinclude, physical quantities (carbon dioxide), measured units (Parts PerMillion), location (North Building, Floor 1, Zone 3), protocol (MODBUS),network (wired, IP address), and usage (buildings).

It should be appreciated that while each connected element will have anassociated data structure, the number of data structure elements mayvary based on the particular configuration or application. Once theconnected elements data structures are organized in this way,multi-dimensional analysis may be performed without discrete or in depthknowledge of the physical system and the associated connected elements.

FIG. 4A is a block diagram of the system components for a semanticsearch method 400 in which various embodiments of the present disclosuremay be implemented. It is possible for either a user and/or anotherprocess from a machine to begin a semantic search. A user-initiatedsearch may begin at a general purpose computer 110, in otherimplementations a machine-initiated process may derive from any otherprocess in the system. It should be appreciated the methods ofinitiation of a semantic search are not mutually exclusive from eachother. In both cases, the query processed by the Semantic Search Engine410, is a structured search query with a particular grammar. Thisgrammar structure may include the use of various data structure elementsas command data elements, which include, filtering, basic aggregation,publish and subscribe, and inferential functions. Once the data sourceassociated with the connected elements has been identified these commanddata elements may be used to act upon current or historic data valuesassociated with the set of connected elements.

In one embodiment, a structured search query may include one or morefiltering expressions. Search Device protocol: ZigBee and quantity:temperature and location: Lab101 With (name==TempSensor and value>22 andwith unit==_F) will search for ZigBee wireless sensors in Lab 101 named“TempSensor” with values greater than 22F. Protocol and location tagsmay be attached to the device level, however, the quantity may beattached to the variable measuring temperature. The semantic searchengine will take into account the variables of a device when performingthe search.

In an alternate embodiment, basic aggregation functions are supportedsuch as Min, Max, Sum, Avg. For example, Sum Variablemeasures:ActiveEnergy and usage:Lighting and location:Building2calculates the sum of all active lighting sources in Building 2. Itshould be appreciated a wide variety of mathematical functions arecontemplated as part of this disclosure and any listed are by way ofexample only.

In another embodiment, Publish and/or Subscribe functionalities, may beapplied to connected elements in a specific location for a givenmeasurement type. Publish functions are contemplated for a user and/orsystem to publish any collected data to a location of choice. Examplesof these locations may include a cloud environment, website address,REST endpoint, mobile device, disc array, or any other appropriatedestination for the data. In one embodiment, the publish functions allowa “push” of data to a specific location or service for possible futureaction or analysis. Subscribe functions are contemplated for a userand/or system to handle situations where devices appear/disappear at aspecific location for a given measurement type. Such a function may alsogenerate alerts and notifications when an event of interest occurs, forexample, if an event on change compared to a user defined threshold.Such subscriptions are configurable according to the system or userrequirements.

For example, it is possible to subscribe to an event by checking thevalue of a temperature sensor every 10 minutes for the next month at aparticular location and generate an alert every time the temperaturevalue is higher than a specific value. The semantic search engine isalso capable of collecting data and pushing to a cloud environment or toa remote REST endpoint. As an example, Collect Device (quantity:temperature or quantity: humidity) or (quantity: ActiveEnergy andusage:mainMeter)) and @loc.:floor1 From 2016-03-21 To 2017-03-21 every00:10:00 towards http://MyRestEndpoint.com/rest. This query collects thetwo types of devices on floor1. The semantic search query will push thisdata for a year, every 10 min to the indicated REST endpoint.

In another embodiment, inferential functions such as @type:sensor mayutilize a defined data source infers relationships between connectedelements. Embodiments of the semantic search engine have an inferenceengine to reason and answer wider queries. The inference feature may bespecified at query time. As an example, a given connected device may beannotated with Stallman lab which is located in Floor 1 and building T3.An example of a query relying on the inference may be Search device@location:T3. Although there is no device tagged with location: T3, thisquery will still return the device after applying the inference (sinceStallman is located in T3). The special character @ on a tag is arequest to apply the inference feature. An inference is applicable, forexample, on the location and the device type tags such as @type:sensorwhich is the parent class of all the sensors.

Structured search queries are received into Semantic Query Handler 420,which is composed of the Query Decoder (QD) 430 and the Query Evaluator(QE) 440. The Query Decoder (QD) 430 analyses the structured searchquery and deconstructs it into query elements. Query elements are passedto the Query Evaluator (QE) 440, to analyze the query elements andperform operations on the system based on the analysis and develop asemantic search query resultant data set. In an implementation, queryelements may be used to actuate, operate, and/or change data valuesassociated with connected elements.

A structured search query may include an inferential function regardinga particular connected element. In this case the discrete connectedelement is not known, but information regarding same is requested. Here,further analysis is performed by the Ontology Handler 450, which furtherprocesses the data structure elements for the inferential referencecontained in the structured search query and accesses the OntologyRepository 460 for the available inferential references to theappropriate connected elements. It is to be appreciated ontologicaloperations may include developing graphical data structures utilizingdevice and/or device location data relationships.

For example, a connected element is a carbon dioxide sensor 330 queriedby a user for the value of the environment. A user inputs a structuredquery into a general purpose computer 110. The Query Decoder (QD) 430decompiles the structured search query and passes the query elements tothe Query Evaluator (QE) 440 that performs operations to collect thedata. In an example, one query element may be used to identify theconnected elements of locations of the connected elements that will beused to define a data source. In this example, only the current value ofcarbon dioxide at the sensor 330 is requested. In another example, aquery example may identify all connected elements associated with afloor, wing, and/or section, of one or more buildings or facilities. TheQuery Evaluator (QE) 440, requests the complete data structure for theconnected element. This data structure is transmitted from the connectedelement acting as a gateway device 240 for the carbon dioxide sensor330. The entire data structure of the carbon dioxide sensor 330 iscollected from the connected element acting as a gateway device 240 andthe data is transmitted to the Semantic Query Handler 420 and to thegeneral purpose computer 110. It should be appreciated that the datastructures for analysis may be from near real time connected elementssuch as the connected element acting as a gateway device 240 or datarepositories 470 which contain the data structures. Such decisions arebased on state of the system and the structured search query.

FIG. 4B is an example of an implementation of components of the systemfor a semantic search method in accordance with various embodiments ofthis disclosure. An annotation is the process of linking concepts fromcommon or/and global ontologies with the actual data exposed by thegateways, as shown in FIG. 4B. With many multi-protocol gateway devices,physical sensors, devices and/or gateways may be represented internallyin a data model or an avatar which resides in memory or retained as adata structure. A semantic tag may be a triplet of data composed of anontology module reference, a concept or a verb, and/or an optionalinstance from the ontology. A semantic tag may be added to the internalrepresentation (data model or avatar) at the gateway or other level. Asemantic tag may be added on a device or a variable representation. Asone example Unit: ° C. and Protocol:Modbus are examples of two semantictags referencing respectively the Unit (represented as Protocol) and theinstance ° C. (represented as modbus) in the ontology modules. TheProtocol: modbus tag may be added at for example, a meter level, whilethe Unit: ° C. tag may be added at the variable level. The conversionrule between ° C. and ° F. for example may be expressed and stored as arule in the Units ontology. It should be appreciated, there are at leasttwo different semantic tagging mechanisms, automatic tagging andcommissioning.

FIG. 5A is a flow diagram of a semantic search method 500 in accordancewith various embodiments of this disclosure. As discussed, a structuredsearch query is received for one or more connected elements 510. Itshould be appreciated that one or more connected elements may be thetarget of the semantic search. This query is received from a user oranother machine. Once received, the structured search query isdeconstructed into its composite query elements 520. Query elements areprocessed by the Semantic Search Engine to identify which set, subset,class, and/or group of the connected set of elements and/or classes ofconnected elements require examination of their respective datastructure 530. The data structure for each identified connected elementextracted and processed to determine what data structured elements matchthe query elements of the structured search query and to determine acommand data element 540. This command data element is used to determineadditional processing required to complete the structured search query.Embodiments of the disclosure allow for analysis of multiple datastructure elements of multiple data structures, which correspond tomultiple connected elements. Decisions are made to determine if otherprocessing is necessary 550. If not, processing is performed for thedata structure on each identified connected element to determine thecommand data element for each identified connected element 560. Commandsare then separated by type 570.

FIG. 5B is a flow diagram of exemplary command functions for a methodfor a semantic search method. From FIG. 5 commands are separated by type570. Command data is processed to determine further processing. Thesetypes include searching commands 574, aggregation commands 576,publishing and subscription commands 578, and localized inferencecommands. Once the determination is made, the command is carried out forsearching 584, aggregation 586, publishing and subscription 588, andlocalized inference 580. Once the result of processing the commands iscomplete for all identified connected elements, annotation of the datais performed to form a queried data set 590. This queried data set isthe result of the initial query along with any actions taken as part ofthe commands processed. This queried data set is provided 592 to thegeneral-purpose computer to be used by the user and/or the system thatmade the initial query.

In one example, the semantic search engine may be used as a method toautonomously turn off light fixtures in a building at a pre-determinedtime. In such an example, a user or system initiates a search query at apre-determined time (such as 8:00 PM) to determine what light fixturesin a building are connected, and operating. A data set of existing lightfixtures in a building is determined as is a current state of the lightfixtures (ON or OFF). If it is determined a light fixture is ON, thefixture is commanded to OFF. A complete reporting of the before state,after state, exceptions, and/or results may be made available to a user,system, and/or archived in a repository such as a cloud environment,and/or disk array. It is to be understood, other such autonomous actionsare possible utilizing various embodiments of this disclosure.

Any general-purpose computer systems used in various embodiments of thisdisclosure may be, for example, general-purpose computers such as thosebased on Intel PENTIUM-type processor, Motorola PowerPC, Sun UltraSPARC,Hewlett-Packard PA-RISC processors, or any other type of processor.

For example, various embodiments of the disclosure may be implemented asspecialized software executing in a general-purpose computer system 600such as that shown in FIG. 6. The computer system 600 may include aprocessor 620 connected to one or more memory devices 630, such as adisk drive, memory, or other device for storing data. Memory 630 istypically used for storing programs and data during operation of thecomputer system 600. The computer system 600 may also include a storagesystem 650 that provides additional storage capacity. Components ofcomputer system 600 may be coupled by an interconnection mechanism 640,which may include one or more busses (e.g., between components that areintegrated within the same machine) and/or a network (e.g., betweencomponents that reside on separate discrete machines). Theinterconnection mechanism 640 enables communications (e.g., data,instructions) to be exchanged between system components of system 600.

Computer system 600 also includes one or more input devices 610, forexample, a keyboard, mouse, trackball, microphone, touch screen, and oneor more output devices 660, for example, a printing device, displayscreen, speaker. In addition, computer system 600 may contain one ormore interfaces (not shown) that connect computer system 600 to acommunication network (in addition or as an alternative to theinterconnection mechanism 640).

The storage system 650, shown in greater detail in FIG. 7, typicallyincludes a computer readable and writeable nonvolatile recording medium710 in which signals are stored that define a program to be executed bythe processor or information stored on or in the medium 710 to beprocessed by the program to perform one or more functions associatedwith embodiments described herein. The medium may, for example, be adisk or flash memory. Typically, in operation, the processor causes datato be read from the nonvolatile recording medium 710 into another memory720 that allows for faster access to the information by the processorthan does the medium 710. This memory 720 is typically a volatile,random access memory such as a dynamic random access memory (DRAM) orstatic memory (SRAM). It may be located in storage system 700, as shown,or in memory system 630. The processor 620 generally manipulates thedata within the integrated circuit memory 630, 720 and then copies thedata to the medium 710 after processing is completed. A variety ofmechanisms are known for managing data movement between the medium 710and the integrated circuit memory element 630, 720, and the disclosureis not limited thereto. The disclosure is not limited to a particularmemory system 630 or storage system 650.

The computer system may include specially-programmed, special-purposehardware, for example, an application-specific integrated circuit(ASIC). Aspects of the disclosure may be implemented in software,hardware or firmware, or any combination thereof. Further, such methods,acts, systems, system elements and components thereof may be implementedas part of the computer system described above or as an independentcomponent.

Although computer system 600 is shown by way of example as one type ofcomputer system upon which various aspects of the disclosure may bepracticed, it should be appreciated that aspects of the disclosure arenot limited to being implemented on the computer system as shown in FIG.7. Various aspects of the disclosure may be practiced on one or morecomputers having a different architecture or components shown in FIG. 7.Further, where functions or processes of embodiments of the disclosureare described herein (or in the claims) as being performed on aprocessor or controller, such description is intended to include systemsthat use more than one processor or controller to perform the functions.

Computer system 600 may be a general-purpose computer system that isprogrammable using a high-level computer programming language. Computersystem 600 may be also implemented using specially programmed, specialpurpose hardware. In computer system 600, processor 620 is typically acommercially available processor such as the well-known Pentium classprocessor available from the Intel Corporation. Many other processorsare available. Such a processor usually executes an operating systemwhich may be, for example, the Windows 95, Windows 98, Windows NT,Windows 2000, Windows ME, Windows XP, Vista, Windows 7, Windows 10, orprogeny operating systems available from the Microsoft Corporation, MACOS System X, or progeny operating system available from Apple Computer,the Solaris operating system available from Sun Microsystems, UNIX,Linux (any distribution), or progeny operating systems available fromvarious sources. Many other operating systems may be used.

The processor and operating system together define a computer platformfor which application programs in high-level programming languages arewritten. It should be understood that embodiments of the disclosure arenot limited to a particular computer system platform, processor,operating system, or network. Also, it should be apparent to thoseskilled in the art that the present disclosure is not limited to aspecific programming language or computer system. Further, it should beappreciated that other appropriate programming languages and otherappropriate computer systems could also be used.

One or more portions of the computer system may be distributed acrossone or more computer systems coupled to a communications network. Forexample, as discussed above, a computer system that determines availablepower capacity may be located remotely from a system manager. Thesecomputer systems also may be general-purpose computer systems. Forexample, various aspects of the disclosure may be distributed among oneor more computer systems configured to provide a service (e.g., servers)to one or more client computers, or to perform an overall task as partof a distributed system. For example, various aspects of the disclosuremay be performed on a client-server or multi-tier system that includescomponents distributed among one or more server systems that performvarious functions according to various embodiments of the disclosure.These components may be executable, intermediate (e.g., IL) orinterpreted (e.g., Java) code which communicate over a communicationnetwork (e.g., the Internet) using a communication protocol (e.g.,TCP/IP). For example, one or more database servers may be used to storedevice data, such as expected power draw, that is used in designinglayouts associated with embodiments of the present disclosure.

It should be appreciated that the disclosure is not limited to executingon any particular system or group of systems. Also, it should beappreciated that the disclosure is not limited to any particulardistributed architecture, network, or communication protocol.

Various embodiments of the present disclosure may be programmed using anobject-oriented programming language, such as SmallTalk, Java, C++, Ada,or C# (C-Sharp). Other object-oriented programming languages may also beused. Alternatively, functional, scripting, and/or logical programminglanguages may be used, such as BASIC, ForTran, COBoL, TCL, or Lua.Various aspects of the disclosure may be implemented in a non-programmedenvironment (e.g., documents created in HTML, XML or other format that,when viewed in a window of a browser program render aspects of agraphical-user interface (GUI) or perform other functions). Variousaspects of the disclosure may be implemented as programmed ornon-programmed elements, or any combination thereof.

Embodiments of a systems and methods described above are generallydescribed for use in relatively large data centers having numerousequipment racks; however, embodiments of the disclosure may also be usedwith smaller data centers and with facilities other than data centers.Some embodiments may also be a very small number of computersdistributed geographically so as to not resemble a particulararchitecture.

In embodiments of the present disclosure discussed above, results ofanalyses are described as being provided in real-time. As understood bythose skilled in the art, the use of the term real-time is not meant tosuggest that the results are available immediately, but rather, areavailable quickly giving a designer the ability to try a number ofdifferent designs over a short period of time, such as a matter ofminutes.

Having thus described several aspects of at least one embodiment of thisdisclosure, it is to be appreciated various alterations, modifications,and improvements will readily occur to those skilled in the art. Suchalterations, modifications, and improvements are intended to be part ofthis disclosure, and are intended to be within the spirit and scope ofthe disclosure. Accordingly, the foregoing description and drawings areby way of example only.

1. A system for processing a semantic search query, the system includinga memory and a processor coupled to the memory and being configured to:receive a structured search query; process the structured search queryto deconstruct into query elements; identify a set of connected elementsthat define a data source associated with the received structured searchquery based on a processed query element; process the query elements todetermine one or more command data element types associated with thereceived structured search query; and process data associated with thedefined data source according to a command data element type to developa semantic search query resultant data set.
 2. The system of claim 1,wherein the structured search query is configured with a particulargrammar.
 3. The system of claim 2, wherein the particular grammarincludes query elements that facilitate filtering, aggregation, publish,subscribe, or inferential functions.
 4. The system of claim 3, whereinthe defined data source is filtered for a data field associated with oneor more connected elements.
 5. The system of claim 4, wherein theassociated filtered data fields selected from a group including devicetype, class, capability, or communication protocol.
 6. The system ofclaim 3, wherein the defined data source is aggregated using amathematical operation.
 7. The system of claim 6, wherein themathematical operations include min, max, sum, or average.
 8. The systemof claim 3, wherein the defined data source is published or subscribedfor connected elements.
 9. The system of claim 3, wherein the defineddata source infers relationships between connected elements.
 10. Thesystem of claim 9, wherein inferring relationships between connectedelements is determined by ontological operations.
 11. The system ofclaim 10, wherein ontological operations include developing graphicaldata structure with device and device location data relationships. 12.The system of claim 1, wherein the data source defined for the semanticsearch query is constructed using semantic tagging which correlates withone or more connected elements.
 13. The system of claim 12, wherein thecommand data element includes operational elements for actuating atleast one of the connected elements associated with the defined datasource.
 14. The system of claim 1, further comprising identifyingactionable connected elements within the defined data source.
 15. Thesystem of claim 14, further comprising updating a data value associatedwith a connected element.
 16. The system of claim 1, wherein one or moreconnected elements are virtual elements.
 17. A method of processing asemantic search query, comprising: receiving, at a processor, astructured search query; processing, at the processor, the structuredsearch query to deconstruct into query elements; identifying, at theprocessor, a set of connected elements that define a data sourceassociated with the received structured search query based on aprocessed query element; processing, at the processor, the queryelements to determine one or more command data element types associatedwith the received structured search query; and processing, at theprocessor, data associated with the defined data source according to acommand data element type to develop a semantic search query resultantdata set.
 18. The method of claim 17, wherein the structured searchquery is configured with a particular grammar.
 19. The method of claim18, wherein the particular grammar includes query elements thatfacilitate filtering, aggregation, publish, subscribe, and/orinferential functions.
 20. The method of claim 19, wherein the defineddata source is filtered for a data field associated with one or moreconnected elements.
 21. The method of claim 20, wherein the associatedfiltered data fields selected from a group including device type, class,capability, or communication protocol.
 22. The method of claim 19,wherein the defined data source is aggregated using a mathematicaloperation.
 23. The method of claim 22, wherein the mathematicaloperations include min, max, sum, or average.
 24. The method of claim19, wherein the defined data source is published or subscribed forconnected elements.
 25. The method of claim 19, wherein the defined datasource infers relationships between connected elements.
 26. The methodof claim 25, wherein inferring relationships between connected elementsis determined by ontological operations.
 27. The method of claim 26,wherein ontological operations include developing graphical datastructure with device and device location data relationships.
 28. Themethod of claim 17, wherein the data source defined for the semanticsearch query is constructed using semantic tagging which correlates withone or more connected elements.
 29. The method of claim 28, wherein thecommand data element includes operational elements for actuating atleast one of the connected elements associated with the defined datasource.
 30. The method of claim 17, further comprising identifyingactionable connected elements within the defined data source.
 31. Themethod of claim 30, further comprising updating a data value associatedwith a connected element.
 32. The method of claim 17, wherein one ormore connected elements are virtual elements.
 33. A method of processinga semantic search query, comprising: receiving, at a processor, astructured search query; processing, at the processor, the structuredsearch query to deconstruct into query elements; identifying, at theprocessor, a set of connected elements based on the query elements;processing, at the processor, the data structure of the identified setof connected elements to determine a command data element; utilizing, atthe processor, the command data element to process the data structure ofthe identified set of connected elements; annotating, at the processor,the data structure of each of the identified set of connected elementsto form a queried data set; and providing, at the processor, the querieddata set.